package com.framework.service.admin;

import com.framework.bean.response.CommonResponse;
import java.util.List;

/**
 * @API
 * @uri adminSystemMenu
 * @moduleName 菜单模块
 * @description 对于菜单的系列操作
 * @author admin
 * @version 0.1
 */
public interface AdminSystemMenuService {

    /**
     * @description 获取菜单列表
     * @requestType post
     * @requestBean BaseRequest
     * @requestExample {"username":"1","password":"2"}
     * @responseExample {"status":200,"data":{"username":"admin","password":"123456"}}
     * @responseBean CommonResponse
     */
    List<CommonResponse> getAllMenu(String reqJson) throws Exception;

    /**
     * @description 获取一级菜单
     * @requestType post
     * @requestBean BaseRequest
     * @requestExample {"username":"1","password":"2"}
     * @responseExample {"status":200,"data":{"username":"admin","password":"123456"}}
     * @responseBean CommonResponse
     */
    List<CommonResponse> getTopMenus(String uuid) throws Exception;

    /**
     * @description 获取当前菜单的子菜单
     * @requestType post
     * @requestBean BaseRequest
     * @requestExample {"username":"1","password":"2"}
     * @responseExample {"status":200,"data":{"username":"admin","password":"123456"}}
     * @responseBean CommonResponse
     */
    List<CommonResponse> getMenuByParaentUuid(String parentUuid,String userUuid) throws Exception;

    /**
     * @description 添加/更新菜单
     * @requestType post
     * @requestBean BaseRequest
     * @requestExample {"username":"1","password":"2"}
     * @responseExample {"status":200,"data":{"username":"admin","password":"123456"}}
     * @responseBean CommonResponse
     */
    List<CommonResponse> addMenu(String reqJson) throws Exception;

    /**
     * @description 删除菜单
     * @requestType post
     * @requestBean BaseRequest
     * @requestExample {"username":"1","password":"2"}
     * @responseExample {"status":200,"data":{"username":"admin","password":"123456"}}
     * @responseBean CommonResponse
     */
    List<CommonResponse> deleteMenu(String reqJson) throws Exception;

    /**
     * @description 更新菜单排序
     * @requestType post
     * @requestBean BaseRequest
     * @requestExample {"username":"1","password":"2"}
     * @responseExample {"status":200,"data":{"username":"admin","password":"123456"}}
     * @responseBean CommonResponse
     */
    List<CommonResponse> sortMenu(String reqJson) throws Exception;

    /**
     * @description 查询菜单
     * @requestType post
     * @requestBean BaseRequest
     * @requestExample {"username":"1","password":"2"}
     * @responseExample {"status":200,"data":{"username":"admin","password":"123456"}}
     * @responseBean CommonResponse
     */
    List<CommonResponse> getMenuByUserUUID(String reqJson) throws Exception;

    /**
     * @description 根据UUID查询菜单
     * @requestType post
     * @requestBean BaseRequest
     * @requestExample {"username":"1","password":"2"}
     * @responseExample {"status":200,"data":{"username":"admin","password":"123456"}}
     * @responseBean CommonResponse
     */
    CommonResponse getMenuByUUID(String reqJson) throws Exception;
}
    